<?php

/**
 * Permite hacer operaciones con la tabla controlador de la base de datos
 * @package simertweb 
 * @subpackage models 
 * @category Administración
 * @author Grecia Espinoza <mrcl2587@gmail.com>
 * @author Juan Maldonado  <jgmaldonadoj@gmail.com>
 * @version 1.0  
 */
class MPersonal_operativo extends Mempleado {

    function __construct() {
        parent::__construct();
        $this->load->model('mhistorico');
    }

    /**
     * Obtiene el personal operativo del SIMERT
     * @return type array
     */
    function listar_personal() {
        if ($this->db->get('controlador')->num_rows() == 0) {
            return $query2 = array();
        } else {
            $query = $this->db->get('controlador');
            $dato = $query->row()->Empleado_Rol_idRol;
            $this->db->where('idRol', $dato);
            $this->db->where('habilitado', 1);
            $this->db->order_by('usuario', 'asc');
            $query2 = $this->db->get('empleado');
            return $query2->result();
        }
    }

    /**
     * Obtiene el personal operativo del SIMERT
     * @return type array
     */
    function listar_personal_nombres() {
        if ($this->db->get('controlador')->num_rows() == 0) {
            return $query2 = array();
        } else {
            $query = $this->db->get('controlador');
            $dato = $query->row()->Empleado_Rol_idRol;
            $this->db->where('idRol', $dato);
            $this->db->where('habilitado', 1);
//            $this->db->order_by('usuario', 'asc');            
            $query2 = $this->db->get('empleado')->result();

            foreach ($query2 as $value) {
                $this->db->or_where('idPersona', $value->idPersona);
            }
            $this->db->order_by('apellido', 'asc');
            $query3 = $this->db->get('persona');
            return $query3->result();
        }
    }

    /**
     * Obtiene el personal operativo inhabilitado
     * @return type array
     */
    function listar_personal_deshabilitados() {
        if ($this->db->get('controlador')->num_rows() == 0) {
            return $query2 = array();
        } else {
            $query1 = $this->db->get('controlador');
            $dato = $query1->row()->Empleado_Rol_idRol;
            $this->db->where('idRol', $dato);
            $this->db->where('habilitado', 0);
            $query = $this->db->get('empleado');
            return $query->result();
        }
    }

    /**
     * Obtiene el personal operativo habilitado
     * @return type array
     */
    function listar_personal_habilitado() {
        if ($this->db->get('controlador')->num_rows() == 0) {
            return $query2 = array();
        } else {
            $query = $this->db->get('controlador');
            $dato = $query->row()->Empleado_Rol_idRol;
            $this->db->where('idRol', $dato);
            $this->db->where('habilitado', 1);
            $query2 = $this->db->get('empleado');
            return $query2->result();
        }
    }

    /**
     * Buscar un controlador inhabilitado
     * @param type $dato es el criterio a buscar
     * @return type array
     */
    function buscar_personal_deshabilitados($dato) {
        $idRol = $this->mrol->id_rol();
        $this->db->where('idRol', $idRol);
        $this->db->like('usuario', $dato, 'after');
        $this->db->where('habilitado', 0);
        $query = $this->db->get('empleado');
        return $query->result();
    }

    /**
     * Busca un controlador habilitado
     * @param type $dato
     * @return type
     */
    function buscar_personal_habilitados($dato) {
        $idRol = $this->mrol->id_rol();
        $this->db->where('idRol', $idRol);
        $this->db->like('usuario', $dato, 'after');
        $this->db->where('habilitado', 1);
        $query = $this->db->get('empleado');
        return $query->result();
    }

    /**
     * Obtiene un controlador
     * @param type $dato es el nombre de usuario
     * @return type array
     */
    function datos_personal_operativo($dato) {
        $this->db->where('usuario', $dato);
        $query = $this->db->get('empleado')->row()->usuario;
        $this->db->where('usuario', $dato);
        $query2 = $this->db->get('empleado')->row()->idEmpleado;
        $this->db->where('Empleado_idEmpleado', $query2);
        $controlador = $this->db->get('controlador')->result();
        $query3 = $this->datosUsuario($query);
        return array_merge($query3, $controlador);
    }

    /**
     * Validar que la serie de tablet exista
     * @return boolean
     */
    function validar_serie_tablet() {
        $this->db->where('serieTablet', $_POST["serietablet"]);
        $query = $this->db->get('controlador');
        if ($query->num_rows() == 0) {
            return TRUE;
        } else {
            return FALSE;
        }
    }

    /**
     * Para modificar valida que la serie de la tablet exista
     * @return boolean
     */
    function validar_serie_tablet_modificar() {
        $this->db->where('idControlador !=', $_POST["codigo"]);
        $this->db->where('serieTablet', $_POST["serietablet"]); //busca la persna segun la cedula ingresada
        $query = $this->db->get('controlador');
        if ($query->num_rows() == 0) {
            return TRUE;
        } else {
            return FALSE;
        }
    }

    /**
     * Guarda un controlador
     */
    function guardar_personal() {
        $this->guardarUsuario();
        $this->db->where('usuario', $_POST["nombreusuario"]);
        $query = $this->db->get('empleado')->row();
        $this->db->where('tipo', $_POST["tipo"]);
        $query2 = $this->db->get('rol')->row();
        $data = array(//obtiene los datos del formulario y los almacena en las variables
            'serieTablet' => $_POST['serietablet'],
            'mac' => $_POST['mac'],
            'Empleado_idEmpleado' => $query->idEmpleado,
            'Empleado_Rol_idRol' => $query2->idRol
        );
        $this->db->insert('controlador', $data); //guarda los datos en la bd
        $id = mysql_insert_id();
        $this->mhistorico->guardar_acceso($id, "Creación de un personal operativo");
    }

    /**
     * Actualiza los datos de un controlador
     * @param type $id es el id de una persona
     * @param type $serieTablet es la serie de la tablet
     * @param type $mac es la dirección MAC
     */
    function actualizar_personal($id, $serieTablet, $mac) {
        $query = $this->obtener_idEmpleado($id);
        $this->actualizar_usuario($query, $_POST["nombreusuario"]);
        $data = array(
            'serieTablet' => $serieTablet,
            'mac' => $mac
        );
        $this->db->where('idControlador', $id);
        $this->db->update('controlador', $data);
        $this->mhistorico->guardar_acceso($id, "Modificación de un personal operativo");
    }

    /**
     * Obtiene el id del controlador
     * @param type $usuario es el nombre de usuario
     * @return type int
     */
    function obtener_idControlador($usuario) {
        $this->db->where('usuario', $usuario);
        $id = $this->db->get('empleado')->row()->idEmpleado;
        $this->db->where('Empleado_idEmpleado', $id);
        $id2 = $this->db->get('controlador')->row()->idControlador;
        return $id2;
    }

    /**
     * Obtiene el id del controlador
     * @param type $usuario es el nombre de usuario
     * @return type int
     */
    function obtener_idControlador2($idEmpleado) {
        $this->db->where('Empleado_idEmpleado', $idEmpleado);
        $id2 = $this->db->get('controlador')->row()->idControlador;
        return $id2;
    }

    /**
     * Obtiene un controlador
     * @param type $id_controlador es el id de controlador
     * @return type array
     */
    function obtener_controlador($id_controlador) {
        $this->db->where('Controlador_idControlador', $id_controlador);
        $controlador = $this->db->get('controlador')->result();
        return $controlador;
    }

    /**
     * Obtiene el nombre de usuario de un controlador
     * @param type $id_controlador es el id de controlador
     * @return type string
     */
    function obtener_nombre_controlador($id_controlador) {
        $this->db->where('idControlador', $id_controlador);
        $controlador = $this->db->get('controlador')->row()->Empleado_idEmpleado;
        $usuario = $this->mempleado->usuario($controlador);
        return $usuario;
    }

    /**
     * Obtiene los nombres de un controlador
     * @param type $id_controlador es el id de un controlador
     * @return type string
     */
    function obtener_persona_controlador($id_controlador) {
        $this->db->where('idControlador', $id_controlador);
        $controlador = $this->db->get('controlador')->row()->Empleado_idEmpleado;
        $usuario = $this->mpersona->obtener_idPersona($controlador);
        $nombres = $this->mpersona->obtener_nombre($usuario);
        return $nombres;
    }

}

?>
